chrome.action.onClicked.addListener(async (tab) => {
  try {
    // 检查是否首次使用
    const result = await chrome.storage.sync.get(['isFirstTime']);
    const isFirstTime = result.isFirstTime !== false;
    
    if (isFirstTime) {
      // 首次使用，直接打开设置页面
      chrome.tabs.create({
        url: chrome.runtime.getURL('options.html'),
        active: true
      });
      return;
    }
    
    // 非首次使用，执行content script
    await chrome.scripting.executeScript({
      target: { tabId: tab.id, allFrames: true },
      files: ["content.js"]
    });
  } catch (e) {
    console.error("脚本注入失败：", e);
    // 不再 alert，避免和站点/其它扩展的 Promise 报错叠加；仅控制台提示。
  }
});

// 处理来自content script的消息
chrome.runtime.onMessage.addListener((message, sender, sendResponse) => {
  if (message.action === 'openPreview') {
    // 打开预览页面
    chrome.tabs.create({
      url: chrome.runtime.getURL('preview.html'),
      active: true
    }, (tab) => {
      // 等待页面加载完成后发送数据
      setTimeout(() => {
        chrome.tabs.sendMessage(tab.id, {
          action: 'loadData',
          data: message.data
        }).catch(() => {
          // 如果发送失败，将数据存储到storage中
          chrome.storage.local.set({
            previewData: message.data
          });
        });
      }, 1000);
    });
  } else if (message.action === 'refreshPreview') {
    // 刷新预览数据 - 提示用户返回课表页面
    chrome.tabs.query({ active: true, currentWindow: true }, (tabs) => {
      if (tabs[0] && !tabs[0].url.startsWith('chrome-extension://')) {
        // 只有在非扩展页面时才执行脚本
        chrome.scripting.executeScript({
          target: { tabId: tabs[0].id, allFrames: true },
          files: ["content.js"]
        }).catch((error) => {
          console.error("重新执行脚本失败：", error);
        });
      }
    });
  }
});